package cn.edu.dzkd.software.service;

import cn.edu.dzkd.software.mapper.RoleMapper;
import cn.edu.dzkd.software.pojo.Role;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class RoleService {

    @Resource
    private RoleMapper roleMapper;

    public Map<String, Object> selectRoles(int page,
                                           String roleName,
                                           String roleLevel) {
        int index = (page - 1) * 10;                   // 根据页码计算出当前页的第一条数据下标
        Map<String, Object> map = new HashMap<>();
        List<Role> roles = roleMapper.selectRoles(index, roleName, roleLevel);    // 通过sql获取数据库pojo数据
        int counts = roleMapper.selectRoleCounts(roleName, roleLevel);            // 通过sql获取总条数
        map.put("code", 0);           // layui默认返回0的状态为成功
        map.put("msg", "");           // layui不解析msg中的信息
        map.put("count", counts);     // 记录数据表中总条数
        map.put("data", roles);       // 当前页的数据内容
        return map;
    }

    public Map<String, Object> selectAllRoles() {
        Map<String, Object> map = new HashMap<>();
        List<Role> roles = roleMapper.selectAllRoles();    // 通过sql获取数据库pojo数据
        map.put("code", 0);           // layui默认返回0的状态为成功
        map.put("msg", "");           // layui不解析msg中的信息
        map.put("data", roles);       // 当前页的数据内容
        return map;
    }

    public Map<String, Object> insert(Role role) {
        Map<String, Object> map = new HashMap<>();
        roleMapper.insert(role);
        map.put("code", 200);
        map.put("msg", "新增权限成功");
        map.put("data", role);
        return map;
    }

    public Map<String, Object> update(Role role) {
        Map<String, Object> map = new HashMap<>();
        roleMapper.update(role);
        map.put("code", 200);
        map.put("msg", "更新权限成功");
        map.put("data", role);
        return map;
    }

    public Map<String, Object> delete(Integer id) {
        Map<String, Object> map = new HashMap<>();
        roleMapper.delete(id);
        map.put("code", 200);
        map.put("msg", "删除权限成功");
        map.put("id", id);
        return map;
    }
}
